package cl.ccs.migracionbcmc.bean;


import cl.ccs.migracionbcmc.dao.AuditoriaProtestosDao;
import cl.ccs.migracionbcmc.dao.BeneficiariosDao;
import cl.ccs.migracionbcmc.dao.CertificadoDao;
import cl.ccs.migracionbcmc.dao.ComboBoxDao;
import cl.ccs.migracionbcmc.dao.ConsultaSituacionDao;
import cl.ccs.migracionbcmc.dao.ContratoDao;
import cl.ccs.migracionbcmc.dao.FirmasDao;
import cl.ccs.migracionbcmc.dao.ListaPublicoDao;
import cl.ccs.migracionbcmc.dao.NumConfirmatorioDao;
import cl.ccs.migracionbcmc.dao.ProtestosDao;
import cl.ccs.migracionbcmc.dao.UsuarioDao;
import cl.ccs.migracionbcmc.dao.VariosDao;
import cl.ccs.migracionbcmc.dao.VerifCarteraDao;
import cl.ccs.migracionbcmc.dao.factory.AuditoriaDaoFactory;
import cl.ccs.migracionbcmc.dao.factory.BeneficiariosDaoFactory;
import cl.ccs.migracionbcmc.dao.factory.CertificadoDaoFactory;
import cl.ccs.migracionbcmc.dao.factory.ComboBoxDaoFactory;
import cl.ccs.migracionbcmc.dao.factory.ConsultaSituacionDaoFactory;
import cl.ccs.migracionbcmc.dao.factory.ContratoDaoFactory;
import cl.ccs.migracionbcmc.dao.factory.FirmasDaoFactory;
import cl.ccs.migracionbcmc.dao.factory.ListaPublicoDaoFactory;
import cl.ccs.migracionbcmc.dao.factory.NumConfirmatorioDaoFactory;
import cl.ccs.migracionbcmc.dao.factory.PortalClientesDaoFactory;
import cl.ccs.migracionbcmc.dao.factory.ProtestosDaoFactory;
import cl.ccs.migracionbcmc.dao.factory.UsuarioDaoFactory;
import cl.ccs.migracionbcmc.dao.factory.VariosDaoFactory;
import cl.ccs.migracionbcmc.dao.factory.VerifCarteraDaoFactory;
import cl.ccs.migracionbcmc.model.AuditoriaGlosaCantidad;
import cl.ccs.migracionbcmc.model.AuditoriaProtestos;
import cl.ccs.migracionbcmc.model.Client;
import cl.ccs.migracionbcmc.model.Contrato;
import cl.ccs.migracionbcmc.model.DatosPersona;
import cl.ccs.migracionbcmc.model.Emisor;
import cl.ccs.migracionbcmc.model.EmisorConsolidado;
import cl.ccs.migracionbcmc.model.Firmante;
import cl.ccs.migracionbcmc.model.IdDescription;
import cl.ccs.migracionbcmc.model.Ley;
import cl.ccs.migracionbcmc.model.Mensaje;
import cl.ccs.migracionbcmc.model.Motivo;
import cl.ccs.migracionbcmc.model.NumConfirmatorio;
import cl.ccs.migracionbcmc.model.PersonaBCMC;
import cl.ccs.migracionbcmc.model.PersonaBeneficiado;
import cl.ccs.migracionbcmc.model.PersonaBoletin;
import cl.ccs.migracionbcmc.model.PersonaCertificado;
import cl.ccs.migracionbcmc.model.PersonaCertificadoEmitido;
import cl.ccs.migracionbcmc.model.RangoBoletinesVig;
import cl.ccs.migracionbcmc.model.RutNombre;
import cl.ccs.migracionbcmc.model.Sucursal;
import cl.ccs.migracionbcmc.model.TipoDocumento;
import cl.ccs.migracionbcmc.model.TipoEmisor;
import cl.ccs.migracionbcmc.model.Usuario;
import cl.ccs.migracionbcmc.model.VerificaCertificado;
import cl.ccs.migracionbcmc.util.Constantes;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;

import javax.annotation.Resource;

import javax.ejb.SessionContext;
import javax.ejb.Stateless;

import javax.faces.context.FacesContext;

import oracle.adf.share.ADFContext;


@Stateless(name = "SessionBCMCEJB", mappedName = "MigracionBCMC-MigracionBCMCModel-SessionBCMCEJB")
public class SessionBCMCEJBBean implements SessionBCMCEJB {
    @Resource
    SessionContext sessionContext;

    public SessionBCMCEJBBean() {
    }


    /**
     * @param codUsuario
     * @return
     * @throws Exception
     */
    @Override
    public Usuario getInfoUsuario(String codUsuario) throws Exception {
        Usuario usuario = new Usuario();
        try {
            UsuarioDao dao = UsuarioDaoFactory.getInstance();
            usuario = dao.getInfoUsuario(codUsuario);
        } catch (Exception e) {
            throw e;
        }
        return usuario;
    }

    /**
     * @param codUsuario
     * @param oldPassw
     * @param newPassw
     * @return
     */
    @Override
    public Mensaje modificaPassword(String codUsuario, String oldPassw, String newPassw) {
        Mensaje mensaje = new Mensaje();
        try {
            UsuarioDao dao = UsuarioDaoFactory.getInstance();
            mensaje = dao.modificaPassword(codUsuario, oldPassw, newPassw);
        } catch (Exception e) {
            e.printStackTrace();
            mensaje.setCodigoMensaje(78000);
            mensaje.setMensaje("ERROR: " + e.getMessage());
            return mensaje;
        }
        return mensaje;
    }

    /**
     * @param rut
     * @param login
     * @return
     * @throws Exception
     */
    @Override
    public PersonaBCMC getProtestos(String rut, String login) throws Exception {
        PersonaBCMC persona = new PersonaBCMC();
        try {
            ProtestosDao dao = ProtestosDaoFactory.getInstance();
            persona = dao.getProtestos(rut, login);
        } catch (Exception e) {
            throw e;
        }
        return persona;
    }

    /**
     * @param rut
     * @param login
     * @return
     * @throws Exception
     */
    @Override
    public PersonaBoletin getListaPublico(String rut, String login) throws Exception {
        PersonaBoletin persona = new PersonaBoletin();
        try {
            ListaPublicoDao dao = ListaPublicoDaoFactory.getInstance();
            persona = dao.getListPublico(rut, login);
        } catch (Exception e) {
            throw e;
        }
        return persona;
    }

    /**
     * @param rut
     * @param apPaterno
     * @param apMaterno
     * @param nombres
     * @param isValid
     * @return
     * @throws Exception
     */
    @Override
    public List<Firmante> getFirmasRut(String rut, String apPaterno, String apMaterno, String nombres,
                                       Boolean isValid) throws Exception {
        List<Firmante> listFirmante = new ArrayList<Firmante>();
        FirmasDao dao = FirmasDaoFactory.getInstance();
        try {
            if (rut != null) {
                listFirmante = dao.getFirmasRut(rut, apPaterno, apMaterno, nombres);
            } else if (nombres != null && apPaterno != null) {
                listFirmante = dao.getFirmasRut(rut, apPaterno, apMaterno, nombres);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return listFirmante;

    }


    /**
     * @param tipoEmisor
     * @param emisor
     * @param sucursal
     * @return
     * @throws Exception
     */
    @Override
    public List<Firmante> getFirmasEmisor(String tipoEmisor, String emisor, Integer sucursal) throws Exception {
        List<Firmante> listFirmante = new ArrayList<Firmante>();
        FirmasDao dao = FirmasDaoFactory.getInstance();
        try {
            listFirmante = dao.getFirmasEmisor(tipoEmisor, emisor, sucursal);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return listFirmante;
    }

    /**
     * @return
     */
    @Override
    public List<TipoEmisor> getCmbTipoEmisorFIR() {
        ComboBoxDao dao = ComboBoxDaoFactory.getInstance();
        return dao.getCmbTipoEmisor(Constantes.CMB_FIRMAS_EMISOR);
    }

    /**
     * @param idTipoEmisor
     * @return
     */
    @Override
    public List<Emisor> getCmbEmisorFIR(String idTipoEmisor) {
        ComboBoxDao dao = ComboBoxDaoFactory.getInstance();
        return dao.getCmbEmisor(idTipoEmisor, Constantes.CMB_FIRMAS_EMISOR);
    }

    /**
     * @param idTipoEmisor
     * @param codigoEmisor
     * @return
     */
    @Override
    public List<Sucursal> getCmbSucursalFIR(String idTipoEmisor, String codigoEmisor) {
        ComboBoxDao dao = ComboBoxDaoFactory.getInstance();
        return dao.getCmbSucursal(idTipoEmisor, codigoEmisor, Constantes.CMB_FIRMAS_EMISOR);
    }


    /**
     * @param rut
     * @param login
     * @return
     * @throws Exception
     */
    @Override
    public PersonaBeneficiado getBeneficiados(String rut, String login) throws Exception {
        PersonaBeneficiado persona = new PersonaBeneficiado();
        try {
            BeneficiariosDao dao = BeneficiariosDaoFactory.getInstance();
            persona = dao.getBeneficiados(rut, login);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return persona;
    }

    /**
     * @return
     */
    @Override
    public List<TipoEmisor> getCmbTipoEmisorNC() {
        ComboBoxDao dao = ComboBoxDaoFactory.getInstance();
        return dao.getCmbTipoEmisor(Constantes.CMB_NUM_CONFIRM);
    }

    /**
     * @param idTipoEmisor
     * @return
     */
    @Override
    public List<Emisor> getCmbEmisorNC(String idTipoEmisor) {
        ComboBoxDao dao = ComboBoxDaoFactory.getInstance();
        return dao.getCmbEmisor(idTipoEmisor, Constantes.CMB_NUM_CONFIRM);
    }


    /**
     * @param idTipoEmisor
     * @param codigoEmisor
     * @return
     */
    @Override
    public List<Sucursal> getCmbSucursalNC(String idTipoEmisor, String codigoEmisor) {
        ComboBoxDao dao = ComboBoxDaoFactory.getInstance();
        return dao.getCmbSucursal(idTipoEmisor, codigoEmisor, Constantes.CMB_NUM_CONFIRM);
    }

    /**
     * @param corrVig
     * @return
     */
    @Override
    public NumConfirmatorio setCmbTipoEmiSucNumConf(Integer corrVig) {
        NumConfirmatorio numConfirmatorio = new NumConfirmatorio();
        try{
            NumConfirmatorioDao dao = NumConfirmatorioDaoFactory.getInstance();
            numConfirmatorio = dao.setCmbTipoEmiSucNumConf(corrVig); 
        }catch(Exception e) {
            e.printStackTrace();
        }
        return numConfirmatorio;
    }

    /**
     * @param idTipoEmisor
     * @param codigoEmisor
     * @param idSucursal
     * @param corrVig
     * @param nroConfirmatorio
     * @param nroFolio
     * @return
     * @throws Exception
     */
    @Override
    public Mensaje buscaNumeroConfirmatorio(String idTipoEmisor, String codigoEmisor, Integer idSucursal,
                                            Integer corrVig, Integer nroConfirmatorio,
                                            Integer nroFolio) throws Exception {
        Mensaje mensaje = new Mensaje();
        try {
            NumConfirmatorioDao dao = NumConfirmatorioDaoFactory.getInstance();
            mensaje = dao.buscaNumeroConfirmatorio(idTipoEmisor, codigoEmisor, idSucursal, corrVig, nroConfirmatorio, nroFolio);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return mensaje;
    }

    /**
     * @param idTipoEmisor
     * @param codigoEmisor
     * @param idSucursal
     * @param nroConfirmatorio
     * @param nroFolio
     * @param usuario
     * @return
     */
    @Override
    public Boolean marcaNumeroConfirmatorio(String idTipoEmisor, String codigoEmisor, Integer idSucursal,
                                            Integer nroConfirmatorio, Integer nroFolio, String usuario) {
        Boolean result = false;
        try {
            NumConfirmatorioDao dao = NumConfirmatorioDaoFactory.getInstance();
            result =
                    dao.marcaNumeroConfirmatorio(idTipoEmisor, codigoEmisor, idSucursal, nroConfirmatorio, nroFolio, usuario);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * @param rut
     * @return
     * @throws Exception
     */
    @Override
    public List<Contrato> getContratos(String rut) throws Exception {
        List<Contrato> result = new ArrayList<Contrato>();
        try {
            ContratoDao dao = ContratoDaoFactory.getInstance();
            result = dao.getContratos(rut);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * @param corrContrato
     * @param rut
     * @return
     * @throws Exception
     */
    @Override
    public Contrato getDetalleContrato(Long corrContrato, String rut) throws Exception {
        Contrato contrato = new Contrato();
        try {
            ContratoDao dao = ContratoDaoFactory.getInstance();
            contrato = dao.getDetalleContrato(corrContrato, rut);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return contrato;
    }

    /**
     * @param corrContrato
     * @param rutAfectado
     * @param usuario
     * @return
     */
    @Override
    public Boolean actualizaContrato(Long corrContrato, String rutAfectado, String usuario) {
        Boolean result = false;
        try {
            ContratoDao dao = ContratoDaoFactory.getInstance();
            result = dao.actualizaContrato(corrContrato, rutAfectado, usuario);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * @param rut
     * @return
     * @throws Exception
     */
    @Override
    public Ley consultaEstado(String rut) throws Exception {
        Ley ley = new Ley();
        try {
            ConsultaSituacionDao dao = ConsultaSituacionDaoFactory.getInstance();
            ley = dao.consultaSituacionLey(rut);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ley;
    }

    /**
     * @param rut
     * @return
     * @throws Exception
     */
    @Override
    public DatosPersona consultaPersona(String rut) throws Exception {
        DatosPersona datosPersona = new DatosPersona();
        try {
            CertificadoDao dao = CertificadoDaoFactory.getInstance();
            datosPersona = dao.consultaPersona(rut);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return datosPersona;
    }

    /**
     * @param rut
     * @param cCosto
     * @param login
     * @return
     * @throws Exception
     */
    @Override
    public PersonaCertificado consultaCertificado(String rut, Integer cCosto, String login) throws Exception {
        PersonaCertificado persona = new PersonaCertificado();
        try {
            CertificadoDao dao = CertificadoDaoFactory.getInstance();
            persona = dao.consultaCertificado(rut, cCosto, login);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return persona;
    }

    /**
     * @param rut
     * @param nombre
     * @param apPaterno
     * @param apMaterno
     * @throws Exception
     */
    @Override
    public void addPersona(String rut, String nombre, String apPaterno, String apMaterno) throws Exception {
        try {
            CertificadoDao dao = CertificadoDaoFactory.getInstance();
            dao.addPersona(rut, nombre, apPaterno, apMaterno);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * @param rut
     * @return
     * @throws Exception
     */
    @Override
    public VerificaCertificado verificarCertificado(String rut) throws Exception {
        VerificaCertificado result = new VerificaCertificado();
        try {
            CertificadoDao dao = CertificadoDaoFactory.getInstance();
            result = dao.verificarCertificado(rut);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * @param rutAfectado
     * @param corrNombre
     * @param rutSolicitante
     * @param cCosto
     * @param login
     * @return
     */
    @Override
    public PersonaCertificado consultaCertificadoPDF(String rutAfectado, Long corrNombre, String rutSolicitante,
                                                     Integer cCosto, String login) {
        PersonaCertificado persona = new PersonaCertificado();
        try {
            CertificadoDao dao = CertificadoDaoFactory.getInstance();
            persona = dao.consultaCertificadoPDF(rutAfectado, corrNombre, rutSolicitante, cCosto, login);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return persona;
    }

    /**
     * @param rut
     * @return
     * @throws Exception
     */
    @Override
    public PersonaCertificadoEmitido consultaCertificadosEmitidos(String rut) throws Exception {
        PersonaCertificadoEmitido persona = new PersonaCertificadoEmitido();
        try {
            CertificadoDao dao = CertificadoDaoFactory.getInstance();
            persona = dao.consultaCertificadosEmitidos(rut);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return persona;
    }

    /**
     * @param fechaDesde
     * @param fechaHasta
     * @param isValid
     * @return
     * @throws Exception
     */
    @Override
    public List<AuditoriaProtestos> getAuditoriaProtestos(Date fechaDesde, Date fechaHasta,
                                                          Boolean isValid) throws Exception {
        List<AuditoriaProtestos> result = new ArrayList<AuditoriaProtestos>();
        try {
            AuditoriaProtestosDao dao = AuditoriaDaoFactory.getInstance();
            result = dao.getAuditoriaProtestos(fechaDesde, fechaHasta, isValid);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * @param fechaDesde
     * @param fechaHasta
     * @param codUsuario
     * @return
     */
    @Override
    public List<AuditoriaGlosaCantidad> getAuditoriaDetalle(Date fechaDesde, Date fechaHasta, String codUsuario) {
        List<AuditoriaGlosaCantidad> result = new ArrayList<AuditoriaGlosaCantidad>();
        try {
            AuditoriaProtestosDao dao = AuditoriaDaoFactory.getInstance();
            result = dao.getAuditoriaDetalle(fechaDesde, fechaHasta, codUsuario);
        } catch (Exception e) {
            e.printStackTrace();
        }

        return result;
    }

    /**
     * @param fechaDesde
     * @param fechaHasta
     * @param codUsuario
     * @param codConsulta
     * @return
     */
    @Override
    public List<RutNombre> getAuditoriaDetalleByCodConsulta(Date fechaDesde, Date fechaHasta, String codUsuario,
                                                            Integer codConsulta) {

        List<RutNombre> result = new ArrayList<RutNombre>();
        try {
            AuditoriaProtestosDao dao = AuditoriaDaoFactory.getInstance();
            result = dao.getAuditoriaDetalleByCodConsulta(fechaDesde, fechaHasta, codUsuario, codConsulta);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }


    /**
     * @param codProceso
     * @param codUsuario
     * @param glosaTarea
     * @param corrEnvio
     * @return
     */
    @Override
    public Mensaje insertaTarea(int codProceso, String codUsuario, String glosaTarea, int corrEnvio) {
        Mensaje mensaje = new Mensaje();
        try {
            VariosDao dao = VariosDaoFactory.getInstance();
            mensaje = dao.insertaTarea(codProceso, codUsuario, glosaTarea, corrEnvio);
        } catch (Exception e) {
            e.printStackTrace();
            mensaje.setCodigoMensaje(78000);
            mensaje.setMensaje("ERROR: " + e.getMessage());
            return mensaje;
        }
        return mensaje;
    }

    @Override
    public List<EmisorConsolidado> getCmbEmisorConsol() {
        ComboBoxDao dao = ComboBoxDaoFactory.getInstance();
        return dao.getCmbEmisorConsol();
    }

    @Override
    public List<TipoEmisor> getCmbTipoEmisorVerCar() {
        ComboBoxDao dao = ComboBoxDaoFactory.getInstance();
        return dao.getCmbTipoEmisor(Constantes.CMB_VER_CAR);
    }

    @Override
    public List<Emisor> getCmbEmisoresAll(String tipoEmisor) {
        ComboBoxDao dao = ComboBoxDaoFactory.getInstance();
        return dao.getCmbEmisoresAll(tipoEmisor);
    }

    @Override
    public List<Motivo> getCmbMotivo() {
        ComboBoxDao dao = ComboBoxDaoFactory.getInstance();
        return dao.getCmbMotivo();
    }

    @Override
    public RangoBoletinesVig obtieneBoletinesVig() {
        RangoBoletinesVig rangoboletinesvig = new RangoBoletinesVig();

        try {
            VerifCarteraDao dao = VerifCarteraDaoFactory.getInstance();
            rangoboletinesvig = dao.obtieneBoletinesVig();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return rangoboletinesvig;
    }

    @Override
    public List<TipoDocumento> getCmbTipoDoc() {
        ComboBoxDao dao = ComboBoxDaoFactory.getInstance();
        return dao.getCmbTipoDoc();
    }

    @Override
    public Mensaje inscripcionClientes(String rut, Date birthDate, String gender, Integer civilStatus, String names,
                                       String firstLastName, String secondLastName, Integer educationalLevel,
                                       String streetAddress, Integer commune, String city, String phone,
                                       String mobilePhone, String activity, String email, String usuario, Integer ccosto) {
        
        return PortalClientesDaoFactory.getInstance().inscripcionClientes(rut, birthDate, gender, civilStatus, names, firstLastName, secondLastName, educationalLevel, streetAddress, commune, city, phone, mobilePhone, activity, email,usuario,ccosto);
                
    }

    @Override
    public List<IdDescription> getCivilStatus() {
        return ComboBoxDaoFactory.getInstance().getCivilStatus();
    }

    @Override
    public List<IdDescription> getEducationalLevel() {
        return ComboBoxDaoFactory.getInstance().getEducationalLevel();
    }

    @Override
    public List<IdDescription> getGender() {
        return ComboBoxDaoFactory.getInstance().getGender();
    }

    @Override
    public List<IdDescription> getRegion() {
        return ComboBoxDaoFactory.getInstance().getRegion();
    }

    @Override
    public List<IdDescription> getCommune(int codRegion) {
        return ComboBoxDaoFactory.getInstance().getCommune(codRegion);
    }

    @Override
    public List<IdDescription> getSecurityQuestion() {
        return ComboBoxDaoFactory.getInstance().getSecurityQuestion();
    }

    @Override
    public Client buscaNombreCliente(String rut) {
        return PortalClientesDaoFactory.getInstance().buscaNombreCliente(rut);
    }

    @Override
    public Mensaje generaClave(Long nroCliente, Integer ccosto, String usuarioModif) {
        return PortalClientesDaoFactory.getInstance().generaClave(nroCliente, ccosto, usuarioModif);
    }

    @Override
    public Client obtenerDatosCliente(Long nroCliente) {
        return PortalClientesDaoFactory.getInstance().obtenerDatosCliente(nroCliente);
    }


    @Override
    public List<IdDescription> getCmbEstadoClienteAll() {
        return ComboBoxDaoFactory.getInstance().getCmbEstadoClienteAll();
    }

    @Override
    public List<Client> buscaClientes(String rut, Date fecDesde, Date fecHasta, Long nroCliente, Integer codEstado) {
        
        List<Client> list = PortalClientesDaoFactory.getInstance().buscaClientes(rut, fecDesde, fecHasta, nroCliente, codEstado);
                
        return list;
    }

    @Override
    public Mensaje modificaDatosCliente(Long nroCliente, String rut, String names, String firstLastName,
                                        String secondLastName, Date birthDate, String gender, Integer civilStatus,
                                        Integer educationalLevel, String streetAddress, Integer commune, String city,
                                        String phone, String mobilePhone, String activity, String email,
                                        String usuarioMod, String causalBlqAnul) {
        
        return PortalClientesDaoFactory.getInstance().modificaDatosCliente(nroCliente, rut, names, firstLastName, secondLastName, birthDate, gender, civilStatus, educationalLevel, streetAddress, commune, city, phone, mobilePhone, activity, email, usuarioMod, causalBlqAnul);
        
    }

    @Override
    public Mensaje validaPrivilegios(String usuario, String privilegio) {
        return VariosDaoFactory.getInstance().validaPrivilegios(usuario, privilegio);
    }

    @Override
    public Mensaje bloqueaDesBlqCliente(Long nroCliente, String causalBlqAnul, String usuarioModif) {
        return PortalClientesDaoFactory.getInstance().bloqueaDesBlqCliente(nroCliente, causalBlqAnul, usuarioModif);
    }

    @Override
    public Mensaje anulaCliente(Long nroCliente, String causalBlqAnul, String usuarioModif) {
        return PortalClientesDaoFactory.getInstance().anulaCliente(nroCliente, causalBlqAnul, usuarioModif);
    }

    @Override
    public Client recuperarClave(Long nroCliente, String usuarioModif) {
        return PortalClientesDaoFactory.getInstance().recuperarClave(nroCliente, usuarioModif);
    }

    @Override
    public Mensaje validarCliente(Long nroCliente, String usuarioModif) {
        return PortalClientesDaoFactory.getInstance().validarCliente(nroCliente, usuarioModif);
    }

    @Override
    public List<Client> infClavesEntregadas(Date fecDesde, Date fecHasta, String usuario) {
        System.out.println("EJBSESSION BEAN");
        return PortalClientesDaoFactory.getInstance().infClavesEntregadas(fecDesde, fecHasta, usuario);
    }

    @Override
    public List<Client> detalleTransDiarias(Date fecDesde, Date fecHasta, Integer ccosto) {
        return PortalClientesDaoFactory.getInstance().detalleTransDiarias(fecDesde, fecHasta, ccosto);
    }

    @Override
    public List<Client> resumenTransDiarias(Date fecDesde, Date fecHasta, Integer ccosto) {
        return PortalClientesDaoFactory.getInstance().resumenTransDiarias(fecDesde, fecHasta, ccosto);
    }

    @Override
    public List<IdDescription> getCmbCCostoAll() {
        return ComboBoxDaoFactory.getInstance().getCmbCCostoAll();
    }
}
